home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # Check that the boot partition is the 1st (primary) partition and that
- # it is of type ext2 or ext3.
-
- machine=$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//') || true
- case "$machine" in
- "Buffalo Linkstation Pro/Live" | "Buffalo/Revogear Kurobox Pro")
- ;;
- "GLAN Tank")
- ;;
- "HP Media Vault mv2120")
- ;;
- *)
- exit 0
- ;;
- esac
-
- . /lib/partman/lib/base.sh
-
- for dev in $DEVICES/*; do
- [ -d "$dev" ] || continue
- cd $dev
- open_dialog PARTITIONS
- while { read_line num id size type fs path name; [ "$id" ]; }; do
- [ "$fs" != free ] || continue
- [ -f $id/method ] || continue
- [ -f $id/acting_filesystem ] || continue
- [ -f $id/mountpoint ] || continue
- mountpoint=$(cat $id/mountpoint)
- filesystem=$(cat $id/acting_filesystem)
- if [ "$mountpoint" = / ]; then
- root_fs=$filesystem
- root_type=$type
- root_path=$path
- elif [ "$mountpoint" = /boot ]; then
- boot_fs=$filesystem
- boot_type=$type
- boot_path=$path
- fi
- done
- close_dialog
- done
-
- # If no separate boot partition exists root acts as boot
- if [ -z "$boot_path" ]; then
- boot_fs=$root_fs
- boot_type=$root_type
- boot_path=$root_path
- fi
-
- # We need an ext2 or ext3 filesystem to boot
- if [ "$boot_fs" != ext2 ] && [ "$boot_fs" != ext3 ]; then
- db_set partman-ext3/boot_not_ext2_or_ext3 true
- db_input critical partman-ext3/boot_not_ext2_or_ext3 || true
- db_go || true
- db_get partman-ext3/boot_not_ext2_or_ext3
- if [ "$RET" = true ]; then
- exit 1
- fi
- fi
-
- # The boot file system has to be the first primary partition
- part_num=$(echo "$boot_path" | sed -e 's/.*[^0-9]\+//')
- if [ "$boot_type" != primary ] || [ "$part_num" -ne 1 ]; then
- db_set partman/boot_not_first_partition true
- db_input critical partman/boot_not_first_partition || true
- db_go || true
- db_get partman/boot_not_first_partition
- if [ "$RET" = true ]; then
- exit 1
- fi
- fi
-
-